package com.sc.nft.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.DaoSchoolTop;
import com.sc.nft.entity.dto.DaoSchoolTopSaveAdminDTO;
import com.sc.nft.entity.dto.DaoSchoolTopUpdateByIdAdminDTO;
import com.sc.nft.entity.vo.DaoSchoolTopHomeListVO;
import com.sc.nft.entity.vo.DaoSchoolTopPageAdminVO;
import com.sc.nft.sup.PageRequest;

import java.util.List;

/**
 * dao学堂的一级分类(DaoSchoolTop)表服务接口
 *
 * @author makejava
 * @since 2023-03-13 16:05:12
 */
public interface DaoSchoolTopService {

    /**
     * 分页获取1级分类列表
     *
     * @param pageRequest
     * @return
     */
    Page<DaoSchoolTopPageAdminVO> pageAdmin(PageRequest pageRequest);

    /**
     * 获取全部数据
     *
     * @return
     */
    List<DaoSchoolTopPageAdminVO> allAdmin();

    /**
     * 后台新增
     *
     * @param daoSchoolTopSaveAdminDTO
     * @return
     */
    Boolean saveAdmin(DaoSchoolTopSaveAdminDTO daoSchoolTopSaveAdminDTO);

    /**
     * 根据id修改
     *
     * @param daoSchoolTopUpdateByIdAdminDTO
     * @return
     */
    Boolean updateByIdAdmin(DaoSchoolTopUpdateByIdAdminDTO daoSchoolTopUpdateByIdAdminDTO);

    /**
     * 对应条目的数据+1
     *
     * @param id
     */
    void totalAddOne(Long id);

    /**
     * 对应条目的数据-1
     *
     * @param id
     */
    void totalSubOne(Long id);


    /**
     * 对应条目的数据+指定的条目
     *
     * @param id
     */
    void totalAddSum(Long id,Integer sum);

    /**
     * 对应条目的数据+指定的条目
     *
     * @param id
     */
    void totalSubSum(Long id,Integer sum);
    /**
     * 根据id删除该分组
     *
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 通过id获取数据.
     *
     * @param id
     * @return
     */
    DaoSchoolTop selectById(Long id);

    /**
     * 首页获取父集列表
     *
     * @return
     */
    Page<DaoSchoolTopHomeListVO> getHomeTopList(PageRequest pageRequest);

}
